﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

//200: '服务器成功返回请求的数据。',
//  201: '新建或修改数据成功。',
//  202: '一个请求已经进入后台排队（异步任务）。',
//  204: '删除数据成功。',
//  400: '发出的请求有错误，服务器没有进行新建或修改数据的操作。',
//  401: '用户没有权限（令牌、用户名、密码错误）。',
//  403: '用户得到授权，但是访问是被禁止的。',
//  404: '发出的请求针对的是不存在的记录，服务器没有进行操作。',
//  406: '请求的格式不可得。',
//  410: '请求的资源被永久删除，且不会再得到的。',
//  422: '当创建一个对象时，发生一个验证错误。',
//  500: '服务器发生错误，请检查服务器。',
//  502: '网关错误。',
//  503: '服务不可用，服务器暂时过载或维护。',
//  504: '网关超时。',
namespace iver.Controllers
{
    /// <summary>
    /// 响应码
    /// </summary>
    public enum ResCode
    {
        /// <summary>
        /// 操作成功
        /// </summary>
        SuccessDeal = 200,
        /// <summary>
        /// 查询成功
        /// </summary>
        SuccessQuery = 201,
        /// <summary>
        /// 添加成功
        /// </summary>
        SuccessAdd = 202,
        /// <summary>
        /// 编辑成功
        /// </summary>
        SuccessEdit = 203,
        /// <summary>
        /// 删除成功
        /// </summary>
        SuccessDel = 204,
        /// <summary>
        /// 操作失败
        /// </summary>
        FailDeal = 400,
        /// <summary>
        /// 用户没有权限访问
        /// </summary>
        FailAuth = 401,
        /// <summary>
        /// 参数验证错误
        /// </summary>
        FailParams = 402,
        /// <summary>
        /// 程序执行错误
        /// </summary>
        FailCatch = 403,

    }
    /// <summary>
    /// 响应结果
    /// </summary>
    public class ResResult
    {
        /// <summary>
        /// 是否成功
        /// </summary>
        public bool success { set; get; }
        private ResCode? code;
        /// <summary>
        /// 响应结果码/错误码（可以空）
        /// </summary>
        public ResCode rescode
        {
            set
            {
                code = value;
            }
            get
            {
                if (code != null)
                {
                    return (ResCode)code;
                }
                if (success == true)
                {
                    return ResCode.SuccessDeal;
                }
                else
                {
                    return ResCode.FailDeal;
                }

            }
        }
        private object o;
        /// <summary>
        /// 结果对象，可以为任何数据，根据业务编写。默认是rescode对应的解释
        /// </summary>
        public object result
        {
            set { o = value; }
            get
            {
                if (o != null)
                {
                    return o;
                }
                object r;
                switch (rescode)
                {
                    case ResCode.SuccessDeal:
                        r = "操作成功";
                        break;
                    case ResCode.SuccessQuery:
                        r = "查询成功";
                        break;
                    case ResCode.SuccessAdd:
                        r = "添加成功";
                        break;
                    case ResCode.SuccessEdit:
                        r = "编辑成功";
                        break;
                    case ResCode.SuccessDel:
                        r = "删除成功";
                        break;
                    case ResCode.FailDeal:
                        r = "操作失败";
                        break;
                    case ResCode.FailAuth:
                        r = "用户没有权限访问";
                        break;
                    case ResCode.FailParams:
                        r = "参数验证错误";
                        break;
                    case ResCode.FailCatch:
                        r = "程序执行错误";
                        break;
                    default:
                        r = o;
                        break;
                }
                return r;
            }
        }
    }
}